package com.ljx.QueueStack;

import java.util.Stack;

/**
 * @author 李加喜
 * @Package com.ljx.QueueStack
 * @date 2021-11-30 16:58
 */
// 有效括号问题
public class KuoHao {
    public static void main(String[] args) {
        String s="()";
        System.out.println(new  KuoHao().isValid(s));
    }

    public  boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        char[] chars = s.toCharArray();
        for (char c : chars) {
            if (c == '(' || c == '[' || c == '{') {
                stack.push(c);
            } else {
                //这个时候是其他符号 就需要进行判断是否能够进行处理
                if (!stack.isEmpty() && stack.peek().equals(leftOf(c))) {
                    stack.pop();
                } else {
                    return false;
                }
            }
        }
        //检验是否所有的左括号都已经被包含了
        return stack.isEmpty();
    }

    private Character leftOf(char c) {
        if (c == ')') {
            return '(';
        } else if (c == ']') {
            return '[';
        } else{
            return '{';
        }
    }
}
